package com.hyjx.framework.uc.depart;

import com.hyjx.framework.component.codetable.CodetableModel;

import java.util.List;

/**
 * 部门信息服务接口
 *
 * @author Peter
 */
public interface DepartService {

    /**
     * 添加数据对象
     *
     * @param model
     */
    boolean add(DepartModel model);

    boolean add2(DepartModel model);

    /**
     * 修改数据对象
     *
     * @param model
     */
    int update(DepartModel model);

    int update2(DepartModel model);

    /**
     * 删除数据对象
     *
     * @param ids
     */
    int delete(String ids);

    /**
     * 通过testid获取数据对象
     *
     * @param id
     */
    DepartModel getDepartById(String id);

    /**
     * 获取数据对象
     */
    String getDepartList(DepartModel testModel);

    /**
     * 获取数据对象
     */
    List<DepartModel> getAllDepart(DepartModel testModel);

    /**
     * 验证信息
     *
     * @param model
     * @return
     */
    String validate(DepartModel model);

    /**
     * 根据父Id自动生成新的编码－－最大号加1
     *
     * @param departModel
     * @return
     */
    String getMaxCodeByParentId(DepartModel departModel);

    /**
     * 取部门列表信息
     *
     * @param model
     * @return
     */
    List<DepartModel> getDepartModelList(DepartModel model);

    /**
     * 取子部门信息
     *
     * @param dm1
     * @return
     */
    List<DepartModel> getSubDepart(DepartModel dm1);

    /**
     * 取子部门信息
     *
     * @param departModel
     * @return
     */
    List<DepartModel> getAllDepart2(DepartModel departModel);

    /**
     * 根据部门编码取部门
     *
     * @param depart_codes
     * @return
     */
    List<DepartModel> getDepartByCodes(String depart_codes);

    /**
     * 取一些部门
     *
     * @param bmid
     * @return
     */
    List<DepartModel> getSomeDepart(String bmid);

    /**
     * 根据编码取部门
     *
     * @param depart_id
     * @return
     */
    DepartModel getDepartByCode(String depart_id);

    /**
     * 查询配置树
     *
     * @param sql
     * @return
     */
    List<CodetableModel> queryconfigtree(String sql);

    /**
     * 取部门城市
     *
     * @param model
     * @return
     */
    String getDepart_city(DepartModel model);

    /**
     * 取根部门
     *
     * @param bmid
     * @return
     */
    List<DepartModel> getRootCode(DepartModel bmid);

    /**
     * 取部门中文全称
     *
     * @param depart_code
     * @return
     */
    String getFullDepartCN(String depart_code);

    /**
     * 取单位
     *
     * @param pid
     * @return
     */
    List<DepartModel> getUnit(DepartModel pid);

    /**
     * 取最大排序号
     *
     * @param model
     * @return
     */
    String getMaxOrderNoByParentId(DepartModel model);

    /**
     * 根据部门取单位信息
     *
     * @param model
     * @return
     */
    DepartModel getOrgCodeByDepartCode(DepartModel model);

    /**
     * 查询对象列表
     *
     * @param sql
     * @return
     */
    List queryObjectList(String sql);

    /**
     * 取所有子部门
     *
     * @param dm1
     * @return
     */
    List<DepartModel> getAllSubDepart(DepartModel dm1);

    int delete2(String id);

    int logic_delete(String id);
}